class U_I18N_API FieldPosition

FieldPosition is a simple class used by Format and its subclasses to identify fields in formatted output

Public Classes

enum
DONT_CARE may be specified as the field to indicate that the caller doesn't need to specify a field

Public Methods

FieldPosition()
Creates a FieldPosition object with a non-specified field
FieldPosition(int32_t field)
Creates a FieldPosition object for the given field
FieldPosition(const FieldPosition& copy)
Copy constructor
~FieldPosition()
Destructor
FieldPosition& operator=(const FieldPosition& copy)
Assignment operator
bool_t operator==(const FieldPosition& that) const
Equality operator
bool_t operator!=(const FieldPosition& that) const
Equality operator
int32_t getField(void) const
Retrieve the field identifier
int32_t getBeginIndex(void) const
Retrieve the index of the first character in the requested field
int32_t getEndIndex(void) const
Retrieve the index of the character following the last character in the requested field
void setField(int32_t f)
Set the field
void setBeginIndex(int32_t bi)
Set the begin index
void setEndIndex(int32_t ei)
Set the end index

Documentation

FieldPosition is a simple class used by Format and its subclasses to identify fields in formatted output. Fields are identified by constants, whose names typically end with _FIELD, defined in the various subclasses of Format. See ERA_FIELD and its friends in DateFormat for an example.

FieldPosition keeps track of the position of the field within the formatted output with two indices: the index of the first character of the field and the index of the last character of the field.

One version of the format method in the various Format classes requires a FieldPosition object as an argument. You use this format method to perform partial formatting or to get information about the formatted output (such as the position of a field).

Below is an example of using FieldPosition to aid alignment of an array of formatted floating-point numbers on their decimal points:

.      double doubleNum[] = {123456789.0, -12345678.9, 1234567.89, -123456.789,
.                 12345.6789, -1234.56789, 123.456789, -12.3456789, 1.23456789};
.      int dNumSize = (int)(sizeof(doubleNum)/sizeof(double));
.      
.      UErrorCode status = U_ZERO_ERROR;
.      DecimalFormat* fmt = (DecimalFormat*) NumberFormat::createInstance(status);
.      fmt->setDecimalSeparatorAlwaysShown(true);
.      
.      const int tempLen = 20;
.      char temp[tempLen];
.      
.      for (int i=0; i<dNumSize; i++) {
.          FieldPosition pos(NumberFormat::INTEGER_FIELD);
.          UnicodeString buf;
.          char fmtText[tempLen];
.          ToCharString(fmt->format(doubleNum[i], buf, pos), fmtText);
.          for (int j=0; j<tempLen; j++) temp[j] = ' '; // clear with spaces
.          temp[__min(tempLen, tempLen-pos.getEndIndex())] = '\0';
.          cout << temp << fmtText   << endl;
.      }
.      delete fmt;

The code will generate the following output:

.          123,456,789.000
.          -12,345,678.900
.            1,234,567.880
.             -123,456.789
.               12,345.678
.               -1,234.567
.                  123.456
.                  -12.345
.                    1.234
enum
DONT_CARE may be specified as the field to indicate that the caller doesn't need to specify a field. Do not subclass.

FieldPosition()
Creates a FieldPosition object with a non-specified field

FieldPosition(int32_t field)
Creates a FieldPosition object for the given field. Fields are identified by constants, whose names typically end with _FIELD, in the various subclasses of Format.
See Also:
INTEGER_FIELD
FRACTION_FIELD
YEAR_FIELD
MONTH_FIELD

FieldPosition(const FieldPosition& copy)
Copy constructor
Parameters:
copy - the object to be copied from.

~FieldPosition()
Destructor

FieldPosition& operator=(const FieldPosition& copy)
Assignment operator

bool_t operator==(const FieldPosition& that) const
Equality operator
Returns:
TRUE if the two field positions are equal, FALSE otherwise.

bool_t operator!=(const FieldPosition& that) const
Equality operator
Returns:
TRUE if the two field positions are not equal, FALSE otherwise.

int32_t getField(void) const
Retrieve the field identifier

int32_t getBeginIndex(void) const
Retrieve the index of the first character in the requested field

int32_t getEndIndex(void) const
Retrieve the index of the character following the last character in the requested field

void setField(int32_t f)
Set the field

void setBeginIndex(int32_t bi)
Set the begin index. For use by subclasses of Format.

void setEndIndex(int32_t ei)
Set the end index. For use by subclasses of Format.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de